package com.sikaryofficial.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sikaryofficial.backend.domain.entity.MyStatistics;
import com.sikaryofficial.backend.domain.vo.MyStatisticsVO;
import com.sikaryofficial.backend.domain.vo.ObjectCount;
import com.sikaryofficial.backend.domain.vo.OtherStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 我的统计Service接口
 *
 * @author qinjinyuan
 * @date 2023-11-06
 */
public interface IMyStatisticsService extends IService<MyStatistics> {
    /**
     * 查询个人统计数据
     *
     * @param userId
     * @return
     */
    MyStatisticsVO queryMyStatistics(Long userId);
    OtherStatisticsVO queryOtherStatistics(Long userId);
    /**
     * 根据对象id查询统计
     *
     * @param objectIds 对象id集合
     * @return
     */
    List<ObjectCount> countByObjectIds(List<Long> objectIds);

    /**
     * 单个对象的用户行为：根据MyStatisticsTypeEnum.businessType 分组
     *
     * @param userId
     * @param objectId 对象id集合
     * @return key: businessType value: ObjectCount
     */
    Map<Integer, ObjectCount> myCountMapByObjectIds(@Param("userId") Long userId,@Param("objectId")  Long objectId);
}
